#pragma once

#include "BaseLoader.h"
#include "SimpleCollectorData.h"

class ComplexOrderLoader : public BaseLoader
{
protected:
    SimpleCollectorData* _collectorData;

    /**
     *  se diferencia da implementação em BaseLoader pela adição do campo size,
     *  que não é usado nas outras ordens de numeração
     */
    virtual QString serialize(EdgeElement& e) const;
    virtual EdgeElement* newElement(EdgeElement* parent, uint id, const QString& value, uint path_id, bool attribute) const;
public:
    ComplexOrderLoader(const QString &user, const QString &passwd, const QString& filename, uint bufferCapacity);
    virtual ~ComplexOrderLoader();

    virtual uint getAdditionalTime() { return _collectorData->getTimeElapsed(); }
};
